@@ -163,31 +163,33 @@ def eqpt_result(request): |
||
163 | 163 |
return response(IsolationPointStatusCode.ISOLATIONPOINT_NOT_FOUND) |
164 | 164 |
|
165 | 165 |
eqpts = ThermometerEquipmentInfo.objects.filter(point_id=point_id, active_status=ThermometerEquipmentInfo.ONLINE, status=True) |
166 |
- macids = eqpts.values_list('macid', flat=True) |
|
167 | 166 |
|
168 |
- logs = ThermometerMeasureInfo.objects.filter( |
|
169 |
- point_id=point_id, |
|
170 |
- point_measure_ymd=tc.local_string(format='%Y-%m-%d'), |
|
171 |
- point_measure_window=point.previous_measure_window, |
|
172 |
- macid__in=macids, |
|
173 |
- status=True, |
|
174 |
- ).values('macid', 'temperature') |
|
175 |
- logs = {log.get('macid'): log.get('temperature') for log in logs} |
|
176 |
- |
|
177 |
- ipuis = IsolationPointUserInfo.objects.filter(point_id=point_id, status=True).values('pk', 'fields') |
|
178 |
- ipuis = {info.get('pk'): info.get('fields') for info in ipuis} |
|
167 |
+ ipuis = IsolationPointUserInfo.objects.filter(point_id=point.point_id, status=True) |
|
168 |
+ ipuis = [ipui.data for ipui in ipuis] |
|
179 | 169 |
|
180 | 170 |
total_active_eqpt_num = eqpts.count() |
181 |
- has_upload_temperature_num = len(logs) |
|
182 |
- fever_num = len([1 for temperature in logs.values() if temperature > settings.FEVER_TEMPERATURE]) |
|
171 |
+ has_upload_temperature_num = len([1 for ipui in ipuis if ipui.get('temperature_has_upload', '') == '已上报']) |
|
172 |
+ fever_num = len([1 for ipui in ipuis if ipui.get('temperature', 0) > settings.FEVER_TEMPERATURE]) |
|
173 |
+ |
|
174 |
+ ipuis = {ipui.get('pk'): { |
|
175 |
+ 'fields': ipui.get('fields', []), |
|
176 |
+ 'observed_days': ipui.get('observed_days', 0), |
|
177 |
+ 'temperature_has_upload': ipui.get('temperature_has_upload', False), |
|
178 |
+ 'temperature': ipui.get('temperature', 0), |
|
179 |
+ 'last_submit_at': ipui.get('last_submit_at', ''), |
|
180 |
+ 'remark': ipui.get('remark', ''), |
|
181 |
+ } for ipui in ipuis} |
|
183 | 182 |
|
184 | 183 |
if kw: |
185 | 184 |
eqpts = eqpts.filter(Q(name__icontains=kw) | Q(phone__icontains=kw)) |
186 | 185 |
eqpts, left = pagination(eqpts, page, num) |
187 | 186 |
eqpts = [{**eqpt.data, **{ |
188 |
- 'has_upload': eqpt.macid in logs, |
|
189 |
- 'temperature': logs.get(eqpt.macid, 0), |
|
190 |
- 'fields': ipuis.get(eqpt.ipui_pk, {}), |
|
187 |
+ 'has_upload': ipuis.get(eqpt.ipui_pk, {}).get('temperature_has_upload', 0), |
|
188 |
+ 'temperature': ipuis.get(eqpt.ipui_pk, {}).get('temperature', 0), |
|
189 |
+ 'observed_days': ipuis.get(eqpt.ipui_pk, {}).get('observed_days', 0), |
|
190 |
+ 'last_submit_at': ipuis.get(eqpt.ipui_pk, {}).get('last_submit_at', ''), |
|
191 |
+ 'remark': ipuis.get(eqpt.ipui_pk, {}).get('remark', ''), |
|
192 |
+ 'fields': ipuis.get(eqpt.ipui_pk, {}).get('fields', []), |
|
191 | 193 |
}} for eqpt in eqpts] |
192 | 194 |
|
193 | 195 |
return response(data={ |
@@ -208,41 +210,24 @@ def get_screen_data(point=None, point_id=None): |
||
208 | 210 |
return {} |
209 | 211 |
|
210 | 212 |
eqpts = ThermometerEquipmentInfo.objects.filter(point_id=point.point_id, active_status=ThermometerEquipmentInfo.ONLINE, status=True) |
211 |
- # macids = eqpts.values_list('macid', flat=True) |
|
212 |
- # |
|
213 |
- # logs = ThermometerMeasureInfo.objects.filter( |
|
214 |
- # point_id=point.point_id, |
|
215 |
- # point_measure_ymd=tc.local_string(format='%Y-%m-%d'), |
|
216 |
- # point_measure_window=point.previous_measure_window, |
|
217 |
- # macid__in=macids, |
|
218 |
- # status=True, |
|
219 |
- # ).values('macid', 'temperature', 'updated_at') |
|
220 |
- # temperature_logs = {log.get('macid'): log.get('temperature') for log in logs} |
|
221 |
- # time_logs = {log.get('macid'): tc.local_string(utc_dt=log.get('updated_at'), format='%m-%d %H:%M') for log in logs} |
|
222 | 213 |
|
223 | 214 |
ipuis = IsolationPointUserInfo.objects.filter(point_id=point.point_id, status=True) |
224 | 215 |
ipuis = [ipui.data for ipui in ipuis] |
225 | 216 |
|
226 | 217 |
total_active_eqpt_num = eqpts.count() |
227 |
- # has_upload_temperature_num = len(temperature_logs) |
|
228 |
- # fever_num = len([1 for temperature in temperature_logs.values() if temperature > settings.FEVER_TEMPERATURE]) |
|
229 | 218 |
has_upload_temperature_num = len([1 for ipui in ipuis if ipui.get('temperature_has_upload', '') == '已上报']) |
230 | 219 |
fever_num = len([1 for ipui in ipuis if ipui.get('temperature', 0) > settings.FEVER_TEMPERATURE]) |
231 | 220 |
|
232 |
- # ipuis_fields = {info.get('pk'): info.get('fields') for info in ipuis} |
|
233 |
- # ipuis_observed_days = {info.get('pk'): info.get('observed_days') for info in ipuis} |
|
234 | 221 |
ipuis = {ipui.get('pk'): { |
235 |
- 'fields': ipui.get('fields'), |
|
236 |
- 'observed_days': ipui.get('observed_days'), |
|
237 |
- 'temperature_has_upload': ipui.get('temperature_has_upload'), |
|
238 |
- 'temperature': ipui.get('temperature'), |
|
239 |
- 'last_submit_at': ipui.get('last_submit_at'), |
|
240 |
- 'remark': ipui.get('remark'), |
|
222 |
+ 'fields': ipui.get('fields', []), |
|
223 |
+ 'observed_days': ipui.get('observed_days', 0), |
|
224 |
+ 'temperature_has_upload': ipui.get('temperature_has_upload', False), |
|
225 |
+ 'temperature': ipui.get('temperature', 0), |
|
226 |
+ 'last_submit_at': ipui.get('last_submit_at', ''), |
|
227 |
+ 'remark': ipui.get('remark', ''), |
|
241 | 228 |
} for ipui in ipuis} |
242 | 229 |
|
243 | 230 |
eqpts = [{**eqpt.screen_data, **{ |
244 |
- # 'has_upload': eqpt.macid in temperature_logs, |
|
245 |
- # 'temperature': temperature_logs.get(eqpt.macid, 0), |
|
246 | 231 |
'has_upload': ipuis.get(eqpt.ipui_pk, {}).get('temperature_has_upload', 0), |
247 | 232 |
'temperature': ipuis.get(eqpt.ipui_pk, {}).get('temperature', 0), |
248 | 233 |
'observed_days': ipuis.get(eqpt.ipui_pk, {}).get('observed_days', 0), |
@@ -264,11 +249,8 @@ def get_screen_data(point=None, point_id=None): |
||
264 | 249 |
'sex': eqpt.get('sex', ''), |
265 | 250 |
'age': eqpt.get('age', ''), |
266 | 251 |
'status': eqpt.get('has_upload'), |
267 |
- # 'status': '已上报' if eqpt.get('temperature') else '未上报', |
|
268 | 252 |
'last_report_time': eqpt.get('last_submit_at', ''), |
269 |
- # 'last_report_time': time_logs.get(eqpt.get('macid', ''), '') if eqpt.get('temperature') else eqpt.get('last_submit_at', ''), |
|
270 | 253 |
'temperature': eqpt.get('temperature', 0), |
271 |
- # 'temperature': eqpt.get('temperature', '') or get_old_temperature(eqpt.get('point_id', ''), eqpt.get('macid', '')), |
|
272 | 254 |
'observed_days': eqpt.get('observed_days', 0), |
273 | 255 |
} for eqpt in eqpts] |
274 | 256 |
|
@@ -20,7 +20,7 @@ class IsolationPointUserInfoAdmin(admin.ModelAdmin): |
||
20 | 20 |
|
21 | 21 |
|
22 | 22 |
class ThermometerEquipmentInfoAdmin(ReadOnlyModelAdmin, admin.ModelAdmin): |
23 |
- list_display = ('eqpt_id', 'point_id', 'macid', 'sn', 'active_status', 'active_at', 'ipui_pk', 'name', 'sex', 'birth_stamp', 'age', 'phone', 'status', 'updated_at', 'created_at') |
|
23 |
+ list_display = ('eqpt_id', 'point_id', 'macid', 'sn', 'active_status', 'active_at', 'ipui_pk', 'status', 'updated_at', 'created_at') |
|
24 | 24 |
list_filter = ('point_id', 'status') |
25 | 25 |
|
26 | 26 |
|
@@ -182,7 +182,7 @@ class IsolationPointUserInfo(BaseModelMixin): |
||
182 | 182 |
'temperature_has_upload': self.temperature_has_upload, |
183 | 183 |
'temperature': self.temperature, |
184 | 184 |
'last_submit_at': tc.local_string(utc_dt=self.last_submit_at, format='%m-%d %H:%M') if self.last_submit_at else '', |
185 |
- 'remark': self.remark, |
|
185 |
+ 'remark': self.remark or '', |
|
186 | 186 |
} |
187 | 187 |
|
188 | 188 |
|
@@ -253,16 +253,17 @@ class ThermometerEquipmentInfo(BaseModelMixin): |
||
253 | 253 |
'active_status': self.active_status, |
254 | 254 |
'active_status_str': dict(self.ACTIVE_STATUE_TUPLE).get(self.active_status, ''), |
255 | 255 |
'active_at': tc.local_string(utc_dt=self.active_at), |
256 |
- 'name': self.name or '', |
|
257 |
- 'sex': self.sex, |
|
258 |
- 'sex_str': dict(SexModelMixin.SEX_TUPLE).get(self.sex, ''), |
|
259 |
- 'age': self.age or '', |
|
260 |
- 'phone': self.phone or '', |
|
261 |
- 'remark': self.remark or '', |
|
262 |
- 'last_submit_at': tc.local_string(utc_dt=self.last_submit_at) if self.last_submit_at else '', |
|
263 |
- 'eqpt_register_status': self.eqpt_register_status, |
|
264 |
- 'eqpt_register_status_str': dict(self.REGISTER_STATUE_TUPLE).get(self.eqpt_register_status, ''), |
|
265 |
- 'eqpt_register_result': self.eqpt_register_result, |
|
256 |
+ 'ipui_pk': self.ipui_pk, |
|
257 |
+ # 'name': self.name or '', |
|
258 |
+ # 'sex': self.sex, |
|
259 |
+ # 'sex_str': dict(SexModelMixin.SEX_TUPLE).get(self.sex, ''), |
|
260 |
+ # 'age': self.age or '', |
|
261 |
+ # 'phone': self.phone or '', |
|
262 |
+ # 'remark': self.remark or '', |
|
263 |
+ # 'last_submit_at': tc.local_string(utc_dt=self.last_submit_at) if self.last_submit_at else '', |
|
264 |
+ # 'eqpt_register_status': self.eqpt_register_status, |
|
265 |
+ # 'eqpt_register_status_str': dict(self.REGISTER_STATUE_TUPLE).get(self.eqpt_register_status, ''), |
|
266 |
+ # 'eqpt_register_result': self.eqpt_register_result, |
|
266 | 267 |
'created_at': tc.local_string(utc_dt=self.created_at), |
267 | 268 |
} |
268 | 269 |
|